package a.a;

import a.c.bb;
import a.c.d;
import a.c.e;
import a.c.n;
import a.c.q;
import a.c.v;
import a.c.w;
import a.c.*;

class ob
{
  q a;
  x b;
  x c;
  x d;
  x f;
  x g;
  n h;
  
  public ob(q paramq)
  {
    this.a = paramq;
  }
  
  public bb a()
  {
    int i = m.b;
    e locale = this.a.p();
    Object localObject1 = null;
    Object localObject2 = null;
    a.c.m localm = locale.l();
    while (localm.e())
    {
      d locald = localm.a();
      if (i == 0)
      {
        if (!locald.g())
        {
          localObject2 = locald;
          break;
        }
        localm.f();
      }
    }
    return a(localObject2);
  }
  
  public bb a(d paramd)
  {
    int k = m.b;
    boolean bool = m.a;
    bb localbb1 = new bb();
    this.c = this.a.B();
    this.b = this.a.B();
    this.d = this.a.B();
    this.f = this.a.B();
    this.h = this.a.C();
    d locald = paramd;
    e locale1 = locald.e();
    e locale2 = locald.f();
    this.d.a(locale2, locald);
    this.d.a(locale1, locald);
    Object localObject = this.a.v();
    if (((w)localObject).e()) {}
    while (k != 0)
    {
      this.b.a(((w)localObject).d(), new a_());
      if (k == 0)
      {
        if (bool) {
          break label191;
        }
        ((w)localObject).f();
      }
      if (!bool) {
        break;
      }
    }
    label191:
    localObject = (a_)this.b.get(locale2);
    ((a_)localObject).a = 1;
    ((a_)localObject).b = 1;
    a(locale1, (a_)this.b.get(locale1), 2);
    this.c.a(locale1, true);
    this.c.a(locale2, true);
    this.h.a(locald, true);
    bb localbb2 = new bb();
    localbb2.c(locale2);
    localbb2.c(locale1);
    bb localbb3 = new bb();
    v localv1 = localbb2.f();
    if (localv1 != null) {}
    label522:
    label581:
    label583:
    label586:
    do
    {
      e locale3 = (e)localv1.c();
      if (k != 0) {
        break label664;
      }
      localbb1.b(locale3);
      if (bool) {
        break label663;
      }
      a.c.m localm = locale3.l();
      do
      {
        do
        {
          do
          {
            if (!localm.e()) {
              break label586;
            }
            while (bool) {
              locald = localm.a();
            }
            if (!this.h.getBool(locald))
            {
              this.h.a(locald, true);
              e locale4 = locald.a(locale3);
              if (k == 0)
              {
                if (locale3 != locale4) {
                  localbb3.clear();
                }
              }
              else
              {
                if (k == 0) {
                  if (this.d.get(locale4) == locald)
                  {
                    a(locale4, localbb3, this.f);
                    if ((k == 0) && (!bool)) {
                      break label522;
                    }
                  }
                }
                int i = ((a_)this.b.get(locale4)).a;
                int j = ((a_)this.b.get(locale3)).a;
                if (j < i) {
                  a(locale4, localbb3, this.d);
                }
                v localv2 = localbb3.f();
                do
                {
                  if (localv2 == null) {
                    break;
                  }
                  localbb2.b(localv2.c(), localv1);
                  localv2 = localv2.a();
                  if (k != 0) {
                    break label583;
                  }
                  if (bool) {
                    break label581;
                  }
                } while (!bool);
              }
            }
          } while (k != 0);
          localm.f();
        } while (!bool);
        localv1 = localv1.a();
      } while (k != 0);
      if (!bool) {
        break;
      }
      this.a.a(this.c);
      this.a.a(this.b);
      this.a.a(this.d);
      this.a.a(this.f);
    } while (k != 0);
    this.a.a(this.h);
    label663:
    label664:
    if ((k != 0) || (q.n))
    {
      if (k == 0) {}
      m.a = !bool;
    }
    if (q.o) {
      m.b = ++k;
    }
    return localbb1;
  }
  
  private int a(e parame, a_ parama_, int paramInt)
  {
    int i = m.b;
    boolean bool = m.a;
    parama_.a = paramInt;
    parama_.b = paramInt;
    paramInt++;
    a.c.m localm = parame.l();
    label208:
    do
    {
      do
      {
        if (!localm.e()) {
          break;
        }
        d locald = localm.a();
        e locale = locald.a(parame);
        if ((i != 0) || (locale != parame))
        {
          a_ locala_ = (a_)this.b.get(locale);
          if (i == 0) {
            if (locala_.a == 0)
            {
              this.d.a(locale, locald);
              paramInt = a(locale, locala_, paramInt);
              if (i != 0) {
                continue;
              }
              if (locala_.b >= parama_.b) {
                break label208;
              }
              parama_.b = locala_.b;
              this.f.a(parame, locald);
              if (i != 0) {
                continue;
              }
              if (!bool) {
                break label208;
              }
            }
          }
          if (i != 0) {
            continue;
          }
          if (locala_.a < parama_.b)
          {
            parama_.b = locala_.a;
            this.f.a(parame, locald);
          }
        }
        localm.f();
      } while (!bool);
    } while (i != 0);
    return paramInt;
  }
  
  private void a(e parame, bb parambb, x paramx)
  {
    boolean bool = m.a;
    do
    {
      if (this.c.getBool(parame)) {
        break;
      }
      d locald = (d)paramx.get(parame);
      parambb.c(parame);
      this.c.a(parame, true);
      this.h.a(locald, true);
      parame = locald.a(parame);
    } while (!bool);
  }
  
  static class a_
  {
    int a;
    int b;
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.a.ob

 * JD-Core Version:    0.7.0.1

 */